<?php

namespace app\service;

use app\popo\dto\AddressBookDTO;
use app\popo\model\AddressBook;

interface AddressBookService
{
    /**
     * 查询当前登录用户的所有地址信息
     * @param AddressBook $addressBook
     * @return array
     */
    public function list(AddressBook $addressBook): array;

    /**
     * 新增地址
     * @param AddressBookDTO $addressBookDTO
     * @return void
     */
    public function save(AddressBookDTO $addressBookDTO): void;

    /**
     * 根据id查询地址
     * @param int $id
     * @return array
     */
    public function getById(int $id): array;

    /**
     * 根据id修改地址
     * @param AddressBookDTO $addressBookDTO
     * @return void
     */
    public function update(AddressBookDTO $addressBookDTO): void;

    /**
     * 设置默认地址
     * @param $id
     * @return void
     */
    public function setDefault($id): void;

    /**
     * 根据id删除地址
     * @param int $id
     * @return void
     */
    public function deleteById(int $id): void;
}